home *** CD-ROM | disk | FTP | other *** search
- package com.ms.lang;
-
- import com.ms.awt.peer.ComponentPeerX;
- import java.applet.Applet;
- import java.awt.Component;
- import java.awt.peer.ComponentPeer;
-
- public final class SystemX {
- public static final int LANG_AFRIKAANS = 1078;
- public static final int LANG_ALBANIAN = 1052;
- public static final int LANG_BASQUE = 1069;
- public static final int LANG_BULGARIAN = 1026;
- public static final int LANG_BYELORUSSIAN = 1059;
- public static final int LANG_CATALAN = 1027;
- public static final int LANG_CHINESE = 1028;
- public static final int SUBLANG_CHINESE_TRADITIONAL = 1028;
- public static final int SUBLANG_CHINESE_SIMPLIFIED = 2052;
- public static final int SUBLANG_CHINESE_HONGKONG = 3076;
- public static final int SUBLANG_CHINESE_SINGAPORE = 4100;
- public static final int LANG_CROATIAN = 1050;
- public static final int LANG_CZECH = 1029;
- public static final int LANG_DANISH = 1030;
- public static final int LANG_DUTCH = 1043;
- public static final int SUBLANG_DUTCH_BELGIAN = 2067;
- public static final int LANG_ENGLISH = 1033;
- public static final int SUBLANG_ENGLISH_US = 1033;
- public static final int SUBLANG_ENGLISH_UK = 2057;
- public static final int SUBLANG_ENGLISH_AUS = 3081;
- public static final int SUBLANG_ENGLISH_CAN = 4105;
- public static final int SUBLANG_ENGLISH_NZ = 5129;
- public static final int SUBLANG_ENGLISH_EIRE = 6153;
- public static final int LANG_ESTONIAN = 1061;
- public static final int LANG_FINNISH = 1035;
- public static final int LANG_FRENCH = 1036;
- public static final int SUBLANG_FRENCH = 1036;
- public static final int SUBLANG_FRENCH_BELGIAN = 2060;
- public static final int SUBLANG_FRENCH_CANADIAN = 3084;
- public static final int SUBLANG_FRENCH_SWISS = 4108;
- public static final int LANG_GERMAN = 1031;
- public static final int SUBLANG_GERMAN = 1031;
- public static final int SUBLANG_GERMAN_SWISS = 2055;
- public static final int SUBLANG_GERMAN_AUSTRIAN = 3079;
- public static final int LANG_GREEK = 1032;
- public static final int LANG_HEBREW = 1037;
- public static final int LANG_HUNGARIAN = 1038;
- public static final int LANG_ICELANDIC = 1039;
- public static final int LANG_INDONESIAN = 1057;
- public static final int LANG_ITALIAN = 1040;
- public static final int SUBLANG_ITALIAN = 1040;
- public static final int SUBLANG_ITALIAN_SWISS = 2064;
- public static final int LANG_JAPANESE = 1041;
- public static final int LANG_KOREAN = 1042;
- public static final int LANG_LATVIAN = 1062;
- public static final int LANG_LITHUANIAN = 1063;
- public static final int LANG_NORWEGIAN = 1044;
- public static final int SUBLANG_NORWEGIAN_BOKMAL = 1044;
- public static final int SUBLANG_NORWEGIAN_NYNORSK = 2068;
- public static final int LANG_POLISH = 1045;
- public static final int LANG_PORTUGUESE = 1046;
- public static final int SUBLANG_PORTUGUESE = 1046;
- public static final int SUBLANG_PORTUGUESE_BRAZILIAN = 2070;
- public static final int LANG_ROMANIAN = 1048;
- public static final int LANG_RUSSIAN = 1049;
- public static final int LANG_SLOVAK = 1051;
- public static final int LANG_SLOVENIAN = 1060;
- public static final int LANG_SORBIAN = 1070;
- public static final int LANG_SPANISH = 1034;
- public static final int SUBLANG_SPANISH = 1034;
- public static final int SUBLANG_SPANISH_MEXICAN = 2058;
- public static final int SUBLANG_SPANISH_MODERN = 3082;
- public static final int LANG_SWEDISH = 1053;
- public static final int LANG_THAI = 1054;
- public static final int LANG_TURKISH = 1055;
- public static final int LANG_UKRAINIAN = 1058;
- public static final int LANG_ARABIC = 1025;
- private static char[] baseCodePage;
- private static boolean isDBCSBase;
-
- public static byte JavaStringToLocalString(char var0) {
- byte[] var1 = new byte[1];
- char[] var2 = new char[]{var0};
- pUnicodeToAnsi(var2, var1, 0, 1, 0);
- return var1[0];
- }
-
- public static byte[] JavaStringToLocalString(char[] var0) {
- return JavaStringToLocalString(var0, 0, var0.length);
- }
-
- public static byte[] JavaStringToLocalString(char[] var0, int var1, int var2) {
- byte[] var3 = new byte[pQueryUnicodeToAnsi(var0, var1, var2, 0)];
- pUnicodeToAnsi(var0, var3, var1, var2, 0);
- return var3;
- }
-
- private static native int pGetKeyboardLayouts(int[] var0);
-
- public static String getKeyboardLanguageName(int var0) {
- return pGetKeyboardLayoutName(var0);
- }
-
- private static native int pAnsiToUnicode(byte[] var0, char[] var1, int var2, int var3, int var4);
-
- private SystemX() {
- isDBCSBase = isBaseDBCS();
- if (isDBCSBase) {
- baseCodePage = null;
- } else {
- baseCodePage = new char[256];
- byte[] var1 = new byte[256];
- int var2 = 0;
-
- do {
- var1[var2] = (byte)var2;
- ++var2;
- } while(var2 < 256);
-
- if (pAnsiToUnicode(var1, baseCodePage, 0, 256, 0) != 256) {
- baseCodePage = null;
- }
- }
-
- }
-
- public static int getNumKeyboardLanguages() {
- return pGetNumKeyboardLayouts();
- }
-
- private static native String pGetKeyboardLayoutName(int var0);
-
- private static native int pQueryUnicodeToAnsi(char[] var0, int var1, int var2, int var3);
-
- public static int getKeyboardLanguage() {
- return pGetKeyboardLayout() & '\uffff';
- }
-
- private static native boolean pSetKeyboardLayout(int var0, int var1);
-
- public static boolean setKeyboardLanguage(Applet var0, int var1) {
- ComponentPeer var2 = ((Component)var0).getPeer();
- if (var2 != null) {
- ComponentPeerX var3 = (ComponentPeerX)var2;
- int var4 = var3.gethwnd();
- return pSetKeyboardLayout(var4, var1);
- } else {
- return false;
- }
- }
-
- public static int getKeyboardLanguages(int[] var0) {
- return pGetKeyboardLayouts(var0);
- }
-
- public static int[] getKeyboardLanguages() {
- int[] var0 = new int[pGetNumKeyboardLayouts()];
- pGetKeyboardLayouts(var0);
- return var0;
- }
-
- private static native int pUnicodeToAnsi(char[] var0, byte[] var1, int var2, int var3, int var4);
-
- private static native int pGetNumKeyboardLayouts();
-
- private static native int pGetKeyboardLayout();
-
- public static native boolean isLocalCharDBCSLeadByte(byte var0);
-
- public static String LocalStringToJavaString(String var0) {
- int var1 = var0.length();
- char[] var2 = new char[var1];
- byte[] var3 = new byte[var1];
- var0.getBytes(0, var1, var3, 0);
- if (baseCodePage != null) {
- for(int var4 = 0; var4 < var1; ++var4) {
- var2[var4] = baseCodePage[var3[var4]];
- }
- } else {
- var1 = pAnsiToUnicode(var3, var2, 0, var1, 0);
- }
-
- return new String(var2, 0, var1);
- }
-
- private static native int pQueryAnsiToUnicode(byte[] var0, int var1, int var2, int var3);
-
- public static char[] LocalStringToJavaString(byte[] var0) {
- return LocalStringToJavaString((byte[])var0, 0, var0.length);
- }
-
- public static char[] LocalStringToJavaString(char[] var0) {
- return LocalStringToJavaString((char[])var0, 0, var0.length);
- }
-
- public static char[] LocalStringToJavaString(byte[] var0, int var1, int var2) {
- char[] var3;
- if (baseCodePage != null) {
- var3 = new char[var2];
-
- for(int var4 = 0; var4 < var2; ++var4) {
- var3[var4] = baseCodePage[var0[var4 + var1]];
- }
- } else {
- var3 = new char[pQueryAnsiToUnicode(var0, var1, var2, 0)];
- pAnsiToUnicode(var0, var3, var1, var2, 0);
- }
-
- return var3;
- }
-
- private static native boolean isBaseDBCS();
-
- public static char[] LocalStringToJavaString(char[] var0, int var1, int var2) {
- char[] var3;
- if (baseCodePage != null) {
- var3 = new char[var2];
-
- for(int var4 = 0; var4 < var2; ++var4) {
- var3[var4] = baseCodePage[var0[var4 + var1]];
- }
- } else {
- byte[] var7 = new byte[var2];
-
- for(int var5 = 0; var5 < var2; ++var5) {
- var7[var5] = (byte)var0[var5];
- }
-
- var3 = new char[pQueryAnsiToUnicode(var7, var1, var2, 0)];
- pAnsiToUnicode(var7, var3, var1, var2, 0);
- }
-
- return var3;
- }
-
- public static char LocalStringToJavaString(byte var0) {
- if (baseCodePage != null) {
- return baseCodePage[var0];
- } else {
- byte[] var1 = new byte[1];
- char[] var2 = new char[1];
- var1[0] = var0;
- pAnsiToUnicode(var1, var2, 0, 1, 0);
- return var2[0];
- }
- }
- }
-